package com.mtsmda.collection;

import java.util.PriorityQueue;
import java.util.Queue;

public class QueueDemo {

	public static void main(String[] args) {
		priorityQueueDemo();
	}

	/**
	 * An unbounded priority queue based on a priority heap. The elements of the
	 * priority queue are ordered according to their natural ordering, or by a
	 * Comparator provided at queue construction time, depending on which
	 * constructor is used. A priority queue does not permit null elements. A
	 * priority queue relying on natural ordering also does not permit insertion
	 * of non-comparable objects (doing so may result in ClassCastException).
	 * */
	private static void priorityQueueDemo() {
		Queue<String> priorityQueue = new PriorityQueue<>();
//		priorityQueue.add(null);
		System.out.println(priorityQueue.add(new String("Pc")));
		System.out.println(priorityQueue.add(new String("Pc")));
		System.out.println(priorityQueue.add(new String("PC")));
		System.out.println(priorityQueue.add(new String("Monitor")));
		System.out.println(priorityQueue.add(new String("monitor")));
		System.out.println(priorityQueue.add(new String("Keyboard")));
		System.out.println(priorityQueue.add(new String("mouse")));
		System.out.println(priorityQueue.size());
		
		for(String s : priorityQueue){
			System.out.println(s);
		}
	}

}